package com.situ.util;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @authot hebing
 * @date 2020/12/2 - 11:25
 */
public class getBeOrderNo {
    public static String orderNo(String type,String orderNo){
        //时间格式化
        SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");
        String s = format.format(new Date());
        //正则自动补全
        DecimalFormat d=new DecimalFormat("0000");
        String format2 = d.format(Integer.parseInt("0000")+1);
        String no="";
        //判断数据库里面有没有数据
        if (orderNo==null || "".equals(orderNo)) {
            no="B"+type+"-"+s+"-"+format2;
        }
        String s1 = orderNo.substring(3, 11);
        String s2 = orderNo.substring(orderNo.length() - 4);
        //判断最后四位的大小
        if ("9999".equals(s2)){
            return "工单号已满";
        }
        //判断时间
        if (s1.equals(s)) {
            no="B"+type+"-"+s+"-"+d.format(Integer.parseInt(s2)+1);
        }else{
            no="B"+type+"-"+s+"-"+format2;
        }
        return no;
    }

    public static List<String> getUserNo(String xq,String userNo,Integer size){
        String s = ChineseToFirstLetterUtil.ChineseToFirstLetter(xq);
        DecimalFormat decimalFormat=new DecimalFormat("00000000");
        //正则自动补全
        String format = decimalFormat.format(Integer.parseInt("00000000") + 1);
        List<String> list=new ArrayList<String>();
        String no="";
        //判断数据库有没有第一个用户编码
        if(null==userNo || "".equals(userNo)){
            for (int i = 0; i < size; i++) {
                no=s+decimalFormat.format(Integer.parseInt("00000000") + (i+1));
                list.add(no);
            }
          return list;
        }

        String substring = userNo.substring(2, userNo.length());
        System.out.println("userNo"+userNo);
        System.out.println("substring"+substring);
        for (int i = 0; i < size; i++) {
             no=s+decimalFormat.format(Integer.parseInt(substring) + (i+1));
            list.add(no);
        }
        return list;

    }
    public static String getMeterNo(String userNo,String meterNo,String lx){
        String no="";
        DecimalFormat decimalFormat=new DecimalFormat("00");
        if("6".equals(lx)){
            String[] split = meterNo.split("-");
            String format = decimalFormat.format(Integer.parseInt(split[1]) + 1);
            no=split[0]+"-"+format;
            return no;
        }
        String format = decimalFormat.format(Integer.parseInt("00") + 1);
        no="M"+userNo+"-"+format;
        return no;
    }
    public static String getContractNum(String contractNum){
        //时间格式化
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
        String date = dateFormat.format(new Date());
        //正则自动补全为0001
        DecimalFormat decimalFormat=new DecimalFormat("0000");
        String no="";
        if("".equals(contractNum)){
            no="HT"+date+decimalFormat.format(Integer.parseInt("0000")+1);
            return no;
        }
        String s = contractNum.substring(2, 10);
        String xu = contractNum.substring(contractNum.length() - 4);

        if (s.equals(date)&&!"9999".equals(xu)){
            no="HT"+date+decimalFormat.format(Integer.parseInt(xu)+1);
            return no;
        }
        if(!s.equals(date)){
            no="HT"+date+decimalFormat.format(Integer.parseInt("0000")+1);
            return no;
        }
        if("9999".equals(xu)){
            return "今日合同编号已满";
        }
        return "空";
    }
    public static void main(String[] args) {
        System.out.println(getContractNum("HT202012130001"));
        System.out.println(getContractNum("HT202012139999"));
        System.out.println(getContractNum("HT202012140005"));
        System.out.println(getContractNum(""));
    }
}
